SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[SP_TMDOCU_PROV_D01]        
/*-------------------------------------------------------*/        
/*---Empresa              : OFISIS S.A.                --*/        
/*---Cliente              : OFISIS                     --*/        
/*---Sistema              : Tesoreria                  --*/        
/*---M¸dulo               : Empresa                    --*/        
/*---Programa             : Anulaci©n Documento P.     --*/        
/*---Script               : ttdocp_a.sql               --*/        
/*---Nombre SP            : SP_TMDOCU_PROV_D01_PPTO    --*/        
/*---Desarrollado por     : Javier Flores A.           --*/        
/*---Fecha Creaci¸n       : 05/08/1999                 --*/        
/*---Base Datos           : Microsoft Sql Server       --*/        
/*---Versi¸n              : 7.0                        --*/        
/*---Invoca a SP          :                            --*/        
/*-------------------------------------------------------*/        
        
/*-------------------------------------------------------*/        
/*---Modificado 1 por     : Maribel Julca Rodriguez    --*/        
/*---Fecha Modificaci©n   : 21/04/2005                 --*/         
/*---Detalle Modificaci©n : ingreso de los campos CO_USUA_CREA, CO_USUA_MODI  --*/        
/*-------------------------------------------------------*/        
/*---- Modificado 2 por     : Carlos Marquez Escobar   ----*/  
/*---- Fecha Modificaci½n   : 24/01/2006               ----*/  
/*---- Detalle Modificacicn : Auditar eliminacion      ----*/  
/*-------------------------------------------------------*/   
/*---- Modificado 3 por     : Andres Soria Mejia       ----*/  
/*---- Fecha Modificaci½n   : 24/05/2010               ----*/  
/*---- Detalle Modificacicn : Se comento los deletes a la tcdocu_alma ----*/  
/*----        y a la tddocu_alma      ----*/  
/*-------------------------------------------------------*/        
/*---- Modificado 4 por     : rvq					 ----*/  
/*---- Fecha Modificaci½n   : 27/05/2010             ----*/  
/*---- Detalle Modificacicn : comento delete tmdocu_prov-*/  
/*-------------------------------------------------------*/        
/*---- Modificado 5 por     : Luis Calixto			 ----*/  
/*---- Fecha Modificaci½n   : 27/05/2010             ----*/  
/*---- Detalle Modificacicn : delete TMDOCU_PRRE       --*/  
/*-------------------------------------------------------*/          
/*---Comentarios                                       --*/        
/*---                                                  --*/        
/*---                                                  --*/        
/*-------------------------------------------------------*/        
        
/*-------------------------------------------------------*/        
/*---Drop Proc SP_TMDOCU_PROV_D01                      --*/        
/*---Grant all on SP_TMDOCU_PROV_D01 to public         --*/         
/*---SP_TMDOCU_PROV_D01_PPTO                                --*/        
/*-------------------------------------------------------*/        
 @ISCO_EMPR       TD_VC_002,         
 @ISCO_USUA_MODI  TD_VC_008_USUA,        
 @ISCO_PROV       TD_VC_020,        
 @ISCO_TIPO_DOCU  TD_VC_003,        
 @ISNU_DOCU_PROV  TD_VC_020        
     
 as        
         
 Declare        
    @CSTI_DOCU_ORIG  TD_VC_003,         
    @CSNU_DOCU_ORIG  TD_VC_020,         
    @CSTI_DOCU_GUIN  TD_VC_003,         
    @CSNU_DOCU_GUIN  TD_VC_020,        
    @CSCO_ALMA       TD_VC_003,        
    @CSCO_UNID       TD_VC_003,        
        
  @VSST_CNTR_PRES  TD_VC_001,         
  @VNAA_CNTR       TD_IN_001,         
  @VNMM_CNTR       TD_IN_001,         
  @VNNU_FETC_0001  TD_IN_001, /* Status del cursor */        
  @CSCO_PART    TD_VC_020,         
  @VSTI_SITU    TD_VC_003,         
  @VSST_CNTR_PARA  TD_VC_001,         
  @VNIM_PART     TD_NU_016_004,         
  @VNCA_PART       TD_IN_001,        
  @VSVA_MENS     TD_VC_100,         
  @VNIM_SALD    TD_NU_016_004,         
  @VSST_SIGN    TD_VC_001,         
  @VNIM_REAL    TD_NU_016_004,         
  @VSCO_MONE_PART  TD_VC_003,         
  @VNIM_UNIT    TD_NU_016_004,         
  @VSCO_MONE_ORCO  TD_VC_003,         
  @VDFE_EMIS_ORCO  TD_DT_001,         
  @VDFE_EMIS_DOCU  TD_DT_001,         
  @VSTI_CAMB    TD_VC_001,         
  @VSTI_ORIG    TD_VC_001,         
  @VSCO_MONE_NACI  TD_VC_003,         
  @VSCO_MONE_EXTR  TD_VC_003,         
  @VNFA_CAMB_DOCU  TD_NU_016_004,         
  @VNFA_CAMB_ORCO  TD_NU_016_004,         
  @VSTI_CAMB_LOGI  TD_VC_001,         
  @VSTI_ORIG_LOGI  TD_VC_001,        
  @VSMO_NACI_LOGI  TD_VC_003,          
  @VSMO_EXTR_LOGI  TD_VC_003,           
  @VNIM_COMP       TD_NU_016_004,         
  @VNNU_REGI_EMPR  TD_IN_001,        
  @VSCO_UNID_CNTB  TD_VC_003,        
  @VSCO_TIAU_PROV  TD_VC_001,        
  @VNIM_MVTO_CNTB  TD_NU_016_004,        
  @VNNU_SECU_PRES  TD_IN_001,        
  @VSCO_MONE_DOCU  TD_VC_003        
        
        
 Begin Tran SP_TMDOCU_PROV_D01_PPTO         
        
      
 Declare CU_TMDOCU_PROV_D01_1 Cursor        
 For        
 Select TI_DOCU_ORIG, NU_DOCU_ORIG, TI_DOCU_GUIN, NU_DOCU_GUIN, CO_ALMA, CO_UNID        
 From   TDORDE_FACT        
 Where  CO_EMPR = @ISCO_EMPR        
     
 And    CO_PROV = @ISCO_PROV        
 And    CO_TIPO_DOCU = @ISCO_TIPO_DOCU        
 And    NU_DOCU_PROV = @ISNU_DOCU_PROV        
     
 Open CU_TMDOCU_PROV_D01_1        
 Fetch CU_TMDOCU_PROV_D01_1 Into @CSTI_DOCU_ORIG, @CSNU_DOCU_ORIG, @CSTI_DOCU_GUIN, @CSNU_DOCU_GUIN,        
 @CSCO_ALMA, @CSCO_UNID        
     
 While (@@FETCH_STATUS = 0)        
 Begin        
  If (@@FETCH_STATUS < 0)        
  Begin        
   RAISERROR 20001 'FN DE ARCHIVO'        
   Close CU_TMDOCU_PROV_D01_1        
   Deallocate CU_TMDOCU_PROV_D01_1        
   Rollback tran        
   Return        
  End        
     
     
     
 --------------- CONTROL PRESUPUESTAL (INICIO) ---------------        
    
  --Para control de presupuestos    
 /* Select  @VNAA_CNTR = Year(FE_EMIS),         
  @VNMM_CNTR = Month(FE_EMIS),         
  @VDFE_EMIS_DOCU = FE_EMIS,         
  @VNFA_CAMB_DOCU = FA_TIPO_CAMB,        
  @VSCO_UNID_CNTB = CO_UNID_CONC,        
  @VSCO_MONE_DOCU = CO_MONE        
  From TMDOCU_PROV        
  Where CO_EMPR = @ISCO_EMPR        
  And CO_PROV = @ISCO_PROV        
  And CO_TIPO_DOCU = @ISCO_TIPO_DOCU        
  And NU_DOCU_PROV = @ISNU_DOCU_PROV        
      
  Select @VSST_CNTR_PRES = ST_CNTR_PRES,         
  @VNNU_REGI_EMPR = NU_REGI_EMPR        
  From TMPARA_PRES        
  Where CO_EMPR = @ISCO_EMPR        
  And NU_ANNO = @VNAA_CNTR        
      
  Select @VSCO_MONE_ORCO = CO_MONE,         
  @VDFE_EMIS_ORCO = FE_EMIS,         
  @VNFA_CAMB_ORCO = FA_CAMB         
  From   TCORDE_COMP         
  Where  CO_EMPR = @ISCO_EMPR         
  And    NU_ORCO = @CSNU_DOCU_ORIG         
      
  Select  @VSTI_CAMB = TI_CAMB,         
  @VSTI_ORIG = TI_ORIG,         
  @VSCO_MONE_NACI = CO_MONE_DEFA,         
  @VSCO_MONE_EXTR = CO_MONE_EXTR,        
  @VSCO_TIAU_PROV = CO_TIAU_PROV        
  From    TMPARA_TESO        
  Where   CO_EMPR = @ISCO_EMPR         
     
  Select  @VSTI_CAMB_LOGI = TI_OFIC_MERC,         
  @VSTI_ORIG_LOGI = TI_COMP_VENT,         
  @VSMO_NACI_LOGI = CO_MONE_NACI,         
  @VSMO_EXTR_LOGI = CO_MONE_EXTR         
  From    TMPARA_LOGI        
  Where   CO_EMPR = @ISCO_EMPR         
     
  -- Se obtiene el signo del documento para hacer el update adecuado        
  Select  @VSST_SIGN = ST_SIGN        
  From    TTDOCU_CNTB        
  Where   TI_DOCU = @ISCO_TIPO_DOCU        
     
  If @VSST_CNTR_PRES = 'S'        
  Begin        
      
  Declare CU_TDORDE_FACT_I01_1 Cursor         
  For        
  Select  Distinct(CO_PART)        
  From   TDORDE_COMP        
  Where  NU_ORCO = @CSNU_DOCU_ORIG        
  And CO_EMPR = @ISCO_EMPR        
  And CO_PART is not null        
  And Rtrim(Ltrim(CO_PART)) != ''        
     
     
  -- Abre Cursor de Interfase - Cabecera    
  Open CU_TDORDE_FACT_I01_1        
  Fetch  CU_TDORDE_FACT_I01_1 Into @CSCO_PART        
     
  Select @VNNU_FETC_0001 = @@FETCH_STATUS        
     
  While (@VNNU_FETC_0001 = 0)        
  Begin        
   If (@VNNU_FETC_0001 < 0)        
   Begin        
    RAISERROR 20001 'FIN DE ARCHIVO'         
    CLOSE CU_TDORDE_FACT_I01_1         
    DEALLOCATE CU_TDORDE_FACT_I01_1         
    RETURN         
   End                
     
   If Exists( Select CO_EMPR           From   TRSIST_PART        
   Where  CO_EMPR = @ISCO_EMPR        
   And NU_ANNO = @VNAA_CNTR        
   And CO_SIST = 'OFITESO'        
   And CO_PART = @CSCO_PART)        
     
   Begin        
       
    Select @VSTI_SITU = TI_SITU,         
    @VSST_CNTR_PARA = ST_CNTR_PRES,         
    @VSCO_MONE_PART = CO_MONE        
    From  TMPART        
    Where  CO_EMPR = @ISCO_EMPR         
    And NU_ANNO = @VNAA_CNTR         
    And CO_PART = @CSCO_PART         
       
    If @VSTI_SITU = 'ACT' And @VSST_CNTR_PARA = 'S'        
    Begin        
      
     Select @VNIM_PART = Isnull(Sum(Isnull(CA_ORDE*IM_UNIT, 0)), 0),        
     @VNCA_PART = Isnull(Sum(Isnull(CA_ORDE, 0)), 0)        
     From   TDORDE_COMP         
     Where  NU_ORCO = @CSNU_DOCU_ORIG         
     And CO_EMPR = @ISCO_EMPR         
     And CO_PART = @CSCO_PART              
        
        
     Select @VNIM_PART = Round(@VNIM_PART ,2)        
         
     --Se convierte el valor a la moneda de la partida        
     Select @VNIM_COMP = (Select dbo.FN_TCFACT_CAMB_Q02(@VSCO_MONE_ORCO,          
     @VSCO_MONE_PART, @VDFE_EMIS_ORCO, @VNIM_PART, @VSTI_ORIG_LOGI,        
     @VSTI_CAMB_LOGI , 'S', @VSMO_NACI_LOGI, @VSMO_EXTR_LOGI, @VNFA_CAMB_ORCO))        
         
     
     --Se convierte el valor a la moneda de la partida        
     Select @VNIM_REAL = (Select dbo.FN_TCFACT_CAMB_Q02(@VSCO_MONE_ORCO,         
     @VSCO_MONE_PART, @VDFE_EMIS_DOCU, @VNIM_PART, @VSTI_CAMB,         
     @VSTI_ORIG, 'S', @VSCO_MONE_NACI, @VSCO_MONE_EXTR, @VNFA_CAMB_DOCU))        
     
     --Se convierte el valor a la moneda de la contable        
     Select @VNIM_MVTO_CNTB = (Select dbo.FN_TCFACT_CAMB_Q02(@VSCO_MONE_ORCO,          
     @VSMO_NACI_LOGI, @VDFE_EMIS_DOCU, @VNIM_PART, @VSTI_CAMB,        
     @VSTI_ORIG , 'S', @VSCO_MONE_NACI, @VSCO_MONE_EXTR, @VNFA_CAMB_DOCU))        
         
     --Se ejecuta el SP para determinar si existe presupuesto para la partida        
     Exec OFIPRES..SP_TAPART_MENS_Q17 @ISCO_EMPR, @VNAA_CNTR, @VNMM_CNTR, 0, @CSCO_PART,         
     0, 0, @VNIM_REAL, @VNCA_PART, 'O', 'V', 'OFITESO', @VSVA_MENS Output, @VNIM_SALD Output       
         
     If Len(Isnull( Rtrim(Ltrim(@VSVA_MENS)), '')) = 0         
     Begin        
         
      -- Insertando en la Tabla TDMVTO_PART    
          
      SELECT @VNNU_SECU_PRES = ISNULL(MAX(NU_SECU),0) + 1        
      FROM  TDMVTO_PART        
      Where CO_EMPR = @ISCO_EMPR        
      AND   NU_ANNO = @VNAA_CNTR        
      AND   NU_MESE = @VNMM_CNTR        
      AND   NU_REGI_EMPR = @VNNU_REGI_EMPR        
      AND   CO_PART = @CSCO_PART           
     
      Insert into TDMVTO_PART (CO_EMPR, NU_ANNO, NU_MESE, NU_REGI_EMPR, CO_PART, NU_SECU, TI_ORIG_MVTO,        
      CO_SIST_ORIG, CO_UNID_CNTB, TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU,        
      FE_DOCU, CO_MONE, FA_CAMB, IM_MVTO_ORIG, IM_MVTO_CNTB, IM_MVTO_PART,         
      CN_CANT, NU_DOCU_ORCO, CO_USUA_CREA,FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI)        
      Values  (@ISCO_EMPR, @VNAA_CNTR, @VNMM_CNTR, @VNNU_REGI_EMPR,@CSCO_PART, @VNNU_SECU_PRES,        
      'EJE', 'OFITESO', @VSCO_UNID_CNTB, @VSCO_TIAU_PROV, @ISCO_PROV, @ISCO_TIPO_DOCU,        
      @ISNU_DOCU_PROV,  @VDFE_EMIS_DOCU, @VSCO_MONE_DOCU, @VNFA_CAMB_DOCU, @VNIM_PART,        
      @VNIM_MVTO_CNTB,  @VNIM_REAL, @VNCA_PART, @CSNU_DOCU_ORIG, @ISCO_USUA_MODI,GETDATE(), @ISCO_USUA_MODI, GETDATE())        
     
      If @@error <> 0        
      Begin        
       Close CU_TDORDE_FACT_I01_1        
       Deallocate CU_TDORDE_FACT_I01_1        
       Rollback tran        
       Return        
      End        
     
      If @VSST_SIGN = 'S'        
       Update  TAPART_MENS        
       Set     IM_COMP = Isnull(IM_COMP,0) + @VNIM_COMP,         
       CN_COMP = Isnull(CN_COMP,0) + @VNCA_PART,         
       IM_EJEC = Isnull(IM_EJEC,0) - @VNIM_REAL,         
       CN_REAL = Isnull(CN_REAL,0) - @VNCA_PART,        
       FE_USUA_MODI = GETDATE(),        
       CO_USUA_MODI = @ISCO_USUA_MODI        
Where   CO_EMPR = @ISCO_EMPR         
       And NU_ANNO = @VNAA_CNTR         
       And NU_MESE = @VNMM_CNTR         
       And NU_REGI_EMPR = @VNNU_REGI_EMPR        
       And CO_PART = @CSCO_PART        
           
       If @@error <> 0        
       Begin        
        Close CU_TDORDE_FACT_I01_1        
        Deallocate CU_TDORDE_FACT_I01_1        
        Rollback tran        
        Return          
       End        
     
     
     If @VSST_SIGN = 'N'        
       Update  TAPART_MENS        
       Set     IM_COMP = Isnull(IM_COMP,0) - @VNIM_COMP,         
       CN_COMP = Isnull(CN_COMP,0) - @VNCA_PART,         
       IM_EJEC = Isnull(IM_EJEC,0) + @VNIM_REAL,         
       CN_REAL = Isnull(CN_REAL,0) + @VNCA_PART,        
       FE_USUA_MODI = GETDATE(),           
       CO_USUA_MODI = @ISCO_USUA_MODI        
       Where   CO_EMPR = @ISCO_EMPR         
       And NU_ANNO = @VNAA_CNTR         
       And NU_MESE = @VNMM_CNTR         
       And NU_REGI_EMPR = @VNNU_REGI_EMPR        
       And CO_PART = @CSCO_PART        
           
       If @@error <> 0        
       Begin        
        Close CU_TDORDE_FACT_I01_1        
        Deallocate CU_TDORDE_FACT_I01_1        
        Rollback tran        
        Return        
       End           
    End         
     
   End        
     
  End        
     
     
  Fetch  CU_TDORDE_FACT_I01_1 Into @CSCO_PART        
      
  Select @VNNU_FETC_0001 = @@FETCH_STATUS        
     
 End --del cursor        
     
     
 Close CU_TDORDE_FACT_I01_1        
 Deallocate CU_TDORDE_FACT_I01_1        
     
 End --del If        
 */    
 --------------- CONTROL PRESUPUESTAL (FIN) ---------------        
     
      
    
 If @CSTI_DOCU_GUIN Is Not Null        
 Begin          
 Update  OFILOGI..TCDOCU_ALMA         
 Set  ST_TESO = 'N',         
 CO_USUA_MODI = @ISCO_USUA_MODI,         
 FE_USUA_MODI = GETDATE()        
 Where   NU_DOCU = @CSNU_DOCU_GUIN        
 And     TI_DOCU = @CSTI_DOCU_GUIN        
 And     CO_ALMA = @CSCO_ALMA        
 And     CO_UNID = @CSCO_UNID        
 And     CO_EMPR = @ISCO_EMPR        
 And     NU_ORCO = @CSNU_DOCU_ORIG         
     
 If @@error <> 0        
 Begin        
 Close CU_TMDOCU_PROV_D01_1        
 Deallocate CU_TMDOCU_PROV_D01_1        
 Rollback tran         
 Return        
 End        
/*       
 Delete OFILOGI..TDDOCU_ALMA         
 Where  CO_EMPR = @ISCO_EMPR         
 And    CO_AUXI_EMPR = @ISCO_PROV         
 And    TI_DOCU_REFE = @ISCO_TIPO_DOCU         
 And    NU_DOCU_REFE = @ISNU_DOCU_PROV        
     
 If @@error <> 0        
 Begin        
 Close CU_TMDOCU_PROV_D01_1        
 Deallocate CU_TMDOCU_PROV_D01_1        
 Rollback tran         
 Return        
 End            
     
 Delete OFILOGI..TCDOCU_ALMA         
 Where  CO_EMPR = @ISCO_EMPR         
 And    CO_AUXI_EMPR = @ISCO_PROV         
 And    TI_DOCU_REFE = @ISCO_TIPO_DOCU         
 And    NU_DOCU_REFE = @ISNU_DOCU_PROV        
     
 If @@error <> 0        
 Begin        
 Close CU_TMDOCU_PROV_D01_1        
 Deallocate CU_TMDOCU_PROV_D01_1        
 Rollback tran         
 Return        
 End          */  
  
 End        
 Else        
 Begin        
 Update  TCORDE_COMP          
 Set  ST_TESO = 'N',         
 CO_USUA_MODI = @ISCO_USUA_MODI,         
 FE_USUA_MODI = GETDATE()        
 Where  NU_ORCO = @CSNU_DOCU_ORIG        
 And    CO_EMPR = @ISCO_EMPR        
     
 If @@error <> 0        
 Begin        
 Close CU_TMDOCU_PROV_D01_1        
 Deallocate CU_TMDOCU_PROV_D01_1        
 Rollback tran        
 Return        
 End            
 End         
     
     
     
 Fetch CU_TMDOCU_PROV_D01_1 Into @CSTI_DOCU_ORIG, @CSNU_DOCU_ORIG, @CSTI_DOCU_GUIN,    
 @CSNU_DOCU_GUIN,        
 @CSCO_ALMA, @CSCO_UNID        
     
 End        
 close CU_TMDOCU_PROV_D01_1        
 deallocate CU_TMDOCU_PROV_D01_1        
     
     
     
 Declare CU_TMDOCU_PROV_D01_1 Cursor        
 For        
 Select  TI_DOCU_DEVO, NU_DOCU_DEVO, CO_ALMA        
 From    TDDEVO_NCRP        
 Where   CO_EMPR = @ISCO_EMPR        
 And     CO_PROV = @ISCO_PROV        
 And     CO_TIPO_DOCU = @ISCO_TIPO_DOCU        
 And     NU_DOCU_PROV = @ISNU_DOCU_PROV        
     
 Open CU_TMDOCU_PROV_D01_1        
 Fetch CU_TMDOCU_PROV_D01_1 Into @CSTI_DOCU_ORIG, @CSNU_DOCU_GUIN, @CSCO_ALMA        
     
 While (@@FETCH_STATUS = 0)        
 Begin        
 If (@@FETCH_STATUS < 0)        
 Begin        
 RAISERROR 20001 'FIN DE ARCHIVO'        
 Close CU_TMDOCU_PROV_D01_1        
 Deallocate CU_TMDOCU_PROV_D01_1        
 Rollback tran        
 Return        
 End        
     
 Update  OFILOGI..TCDOCU_ALMA         
 Set  ST_TESO = 'N',         
 CO_USUA_MODI = @ISCO_USUA_MODI,         
 FE_USUA_MODI = GETDATE()        
 Where   NU_DOCU = @CSNU_DOCU_GUIN        
 And     TI_DOCU = @CSTI_DOCU_GUIN        
 And     CO_ALMA = @CSCO_ALMA        
 And     CO_UNID = @CSCO_UNID        
 And     CO_EMPR = @ISCO_EMPR        
 And     NU_ORCO = @CSNU_DOCU_ORIG         
     
 If @@error <> 0        
 Begin        
 Close CU_TMDOCU_PROV_D01_1        
 Deallocate CU_TMDOCU_PROV_D01_1        
 Rollback tran         
 Return        
 End            
     
     
     
 Fetch CU_TMDOCU_PROV_D01_1 into @CSTI_DOCU_ORIG, @CSNU_DOCU_GUIN, @CSCO_ALMA        
     
 End        
 close CU_TMDOCU_PROV_D01_1        
 deallocate CU_TMDOCU_PROV_D01_1        
    
   
     
 Delete  TDDISP_CCOS        
 Where  CO_EMPR = @ISCO_EMPR        
 And    CO_PROV = @ISCO_PROV                
 And    CO_TIPO_DOCU = @ISCO_TIPO_DOCU           
 And    NU_DOCU_PROV = @ISNU_DOCU_PROV        
     
 IF (@@ERROR != 0)        
 BEGIN        
  --RAISERROR 20001 "ERROR DE INSERCION"        
  ROLLBACK TRAN        
  RETURN        
 END        
     
 Delete  TDDEVO_NCRP        
 Where  CO_EMPR = @ISCO_EMPR        
 And    CO_PROV = @ISCO_PROV                
 And    CO_TIPO_DOCU = @ISCO_TIPO_DOCU           
 And  NU_DOCU_PROV = @ISNU_DOCU_PROV        
     
 IF (@@ERROR != 0)        
 BEGIN        
 --RAISERROR 20001 "ERROR DE INSERCION"        
 ROLLBACK TRAN        
 RETURN        
 END        
     
 Delete  TDORDE_FACT        
 Where  CO_EMPR = @ISCO_EMPR        
 And    CO_PROV = @ISCO_PROV                
 And    CO_TIPO_DOCU = @ISCO_TIPO_DOCU           
 And    NU_DOCU_PROV = @ISNU_DOCU_PROV        
     
 IF (@@ERROR != 0)        
 BEGIN        
 --RAISERROR 20001 "ERROR DE INSERCION"        
  ROLLBACK TRAN        
  RETURN        
 END        
     
 Delete  TDPROG_PAGO    
 Where  CO_EMPR = @ISCO_EMPR        
 And    CO_PROV = @ISCO_PROV                
 And    CO_TIPO_DOCU = @ISCO_TIPO_DOCU           
 And    NU_DOCU_PROV = @ISNU_DOCU_PROV        
     
 IF (@@ERROR != 0)        
 BEGIN        
 --RAISERROR 20001 "ERROR DE INSERCION"        
  ROLLBACK TRAN        
  RETURN        
 END        
   
 Update TMDOCU_PROV  
 set CO_USUA_MODI = @ISCO_USUA_MODI, FE_USUA_MODI = GetDate()  
  Where  CO_EMPR = @ISCO_EMPR        
  And    CO_PROV = @ISCO_PROV                
  And    CO_TIPO_DOCU = @ISCO_TIPO_DOCU           
  And    NU_DOCU_PROV = @ISNU_DOCU_PROV        
      
  IF (@@ERROR != 0)        
  BEGIN        
  --RAISERROR 20001 "ERROR DE INSERCION"        
   ROLLBACK TRAN        
   RETURN        
  END        
  
    
 Delete  TMDOCU_PROV         
 Where  CO_EMPR = @ISCO_EMPR        
 And    CO_PROV = @ISCO_PROV                
 And    CO_TIPO_DOCU = @ISCO_TIPO_DOCU           
 And    NU_DOCU_PROV = @ISNU_DOCU_PROV        
     
 IF (@@ERROR != 0)        
 BEGIN        
 --RAISERROR 20001 "ERROR DE INSERCION"        
  ROLLBACK TRAN        
  RETURN        
 END    

IF (SELECT ST_APRO FROM TMPARA_TESO WHERE CO_EMPR = @ISCO_EMPR) = 'N'
BEGIN

-- elimina recepcion   
Delete TMDOCU_PRRE  
Where CO_EMPR =  @ISCO_EMPR  
And CO_PROV = @ISCO_PROV  
And CO_TIPO_DOCU = @ISCO_TIPO_DOCU  
And NU_DOCU_PROV = @ISNU_DOCU_PROV  
 IF (@@ERROR != 0)          
 BEGIN          
 --RAISERROR 20001 "ERROR DE INSERCION"          
  ROLLBACK TRAN          
  RETURN          
 END 

END        
        
        
Commit Tran 

/*-------------------------- Fin ------------------------------*/

GO
